/**
 * Copyright (C) 2011 Moss Computing <support@mosscomputing.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.oslef.format;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

public interface Constants {
	
	@Retention(RUNTIME) @Target({ElementType.FIELD})
	public @interface Required {}

	/**
	 * Uniquely identifies a loan record.
	 */
	public static final String LOAN_ID = "loan_id";
	
	/**
	 * This is also a test javadoc.
	 */
	public static final String APP_CUSTOMER_ID = "customer_id";
	public static final String APP_SSN = "ssn";
	public static final String APP_FIRST_NAME = "first_name";
	public static final String APP_MIDDLE_INITIAL = "middle_initial";
	public static final String APP_LAST_NAME = "last_name";
	public static final String APP_DATE_OF_BIRTH = "date_of_birth";
	public static final String APP_DRIVERS_LICENSE_NUMBER = "drivers_license_number";
	public static final String APP_EMAIL_ADDRESS = "email_address"; 
	public static final String APP_RACE = "race";
	public static final String APP_HEIGHT_INCHES = "heightInches"; 
	public static final String APP_GENDER = "gender"; 
	public static final String APP_PHONE_PREFIX = "phone:";
	public static final String APP_RES_LINE_ONE_PREFIX = "residence.line_one:"; 
	public static final String APP_RES_LINE_TWO_PREFIX = "residence.line_two:";
	public static final String APP_RES_CITY_PREFIX = "residence.city:"; 
	public static final String APP_RES_STATE_PREFIX = "residence.state:";
	public static final String APP_RES_ZIP5_PREFIX = "residence.zip5:"; 
	public static final String APP_RES_ZIP4_PREFIX = "residence.zip4:";
	public static final String APP_REF_NAME_PREFIX = "reference.name:"; 
	public static final String APP_REF_HOME_PHONE_PREFIX = "reference.home_phone:";
	public static final String APP_REF_WORK_PHONE_PREFIX = "reference.work_phone:"; 
	public static final String APP_INC_EMPLOYER_NAME_PREFIX = "income.employer_name:";
	public static final String APP_INC_PAY_FREQUENCY_PREFIX = "income.pay_frequency:"; 
	public static final String APP_INC_AMOUNT_PREFIX = "income.amount:";
	public static final String APP_INC_NEXT_PAY_DATE_PREFIX = "income.next_pay_date:"; 
	public static final String APP_INC_SHIFT_HOURS_PREFIX = "income.shift_hours:";
	public static final String APP_INC_MONTHS_OF_SERVICE_PREFIX = "income.months_of_service:";
	public static final String APP_INC_HAS_DIRECT_DEPOSIT_PREFIX = "income.has_direct_deposit:";

	public static final String STRUCT_TYPE = "loan_type"; 
	public static final String STRUCT_WHEN_EXECUTED = "when_executed";
	public static final String STRUCT_LOAN_AMOUNT = "loan_amount"; 
	public static final String STRUCT_DISCLOSED_APR = "disclosed_apr";
	public static final String STRUCT_INTEREST_RATE = "interest_rate"; 
	public static final String STRUCT_FINANCED_FEE_PREFIX = "financed_fee:";

	public static final String TA_CHECK_BANK_NAME_PREFIX = "held_check.bank_name:";
	public static final String TA_CHECK_ROUTING_NUMBER_PREFIX = "held_check.routing_number:";
	public static final String TA_CHECK_ACCOUNT_NUMBER_PREFIX = "held_check.account_number:"; 
	public static final String TA_CHECK_NUMBER_PREFIX = "held_check.number:";
	public static final String TA_CHECK_AMOUNT_PREFIX = "held_check.amount:"; 
	public static final String TA_CHECK_DATE_PREFIX = "held_check.date:";

	public static final String COL_VTITLE_YEAR_PREFIX = "vtitle.year:"; 
	public static final String COL_VTITLE_COLOR_PREFIX = "vtitle.color:";
	public static final String COL_VTITLE_MAKE_PREFIX = "vtitle.make:"; 
	public static final String COL_VTITLE_MODEL_PREFIX = "vtitle.model:";
	public static final String COL_VTITLE_LICENSE_NUMBER_PREFIX = "vtitle.license:"; 
	public static final String COL_VTITLE_VIN_PREFIX = "vtitle.vin:";
	public static final String COL_VTITLE_CERT_NUMBER_PREFIX = "vtitle.cert:";

	public static final String INST_DUE_DATE = "due_date"; 
	public static final String INST_DUE_AMOUNT = "due_amount";
	public static final String INST_ACCOUNT_PREFIX = "account:";

	public static final String HIST_ACTION = "action"; 
	public static final String HIST_WHEN_HAPPENED = "when_happened";
	public static final String HIST_WHEN_VOIDED = "when_voided"; 
	public static final String HIST_AMOUNT = "amount"; 
	public static final String HIST_ACCOUNT_PREFIX = "account:";
}
